package com.xiumu.config;

import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.LineCaptcha;
import com.xiumu.common.core.utils.StopWatchUtil;
import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * 项目启动之后执行的一些操作
 *
 * @author XiuMu
 * @Date 2024/3/7 11:46
 */
@Slf4j
@Component
public class XiuMuAfterRun {

    /**
     * 项目部署到虚拟机之后，第一次调用生成验证码接口巨慢无比，耗时达到 15 秒。但是第一次调用之后，就很正常了。
     * 暂时没找到原因，只能项目启动之后先执行一次生成验证码
     * 非常离谱。明明时间打印很正常，但是不事先调用一次，第一次调用接口生成验证码就非常缓慢。
     * 猜测，可能是生成二维码需要调用系统的字体有关系，也可能不是。暂时就先这样吧
     */
    @PostConstruct
    public void initCaptcha() {
        StopWatchUtil.start();
        LineCaptcha captcha = CaptchaUtil.createLineCaptcha(150, 40, 4, 50);
        log.info("验证码生成耗时:{}", StopWatchUtil.getTime());
        captcha.getImageBase64();
        log.info("base64编码耗时:{}", StopWatchUtil.getTimeAndStop());
    }
}
